//模拟思路就是用哈希表记录青蛙叫的哪里了
//最后完成一次完整的蛙叫一定是在‘k’里面存着
class Solution 
{
public:
    int minNumberOfFrogs(string croakOfFrogs) 
    {
        unordered_map<char,char>tem;
        string s="croak";
        for(int i=1;i<s.size();i++)
        {
            tem.insert(std::make_pair(s[i],s[i-1]));
        }
        int n=croakOfFrogs.size();
        unordered_map<char,int>m;
        for(int i=0;i<n;i++)
        {
            char c=croakOfFrogs[i];
            char prev;
            if(c!='c')
            {
                prev=tem[c];
                if(m[prev]==0) return -1;
                else 
                {
                    m[prev]--;
                    m[c]++;
                }
            }
            else
            {
                if(m['k']!=0)
                {
                    m['k']--;
                    m['c']++;
                }
                else
                {
                    m['c']++;
                }
            }
        
        }
        for(auto&ch:m)
        {
            if(ch.first!='k'&&ch.second!=0) return -1;
        }
        return m['k'];
    }
};